iT邦幫忙

2024 iThome 鐵人賽

DAY 23
2

問題的情境

在請朋友測試吃吃記帳時,她提出一個問題:「如果使用者只付費一個月,那麼一個月之後,要怎麼中止對使用者的服務呢?」

這個簡單的問題,讓我突然意識到,我在權限管理設計上,有一個重大的漏洞。我最開始的想法是,當使用者試用完畢,或是取消訂閱後,我可以把對方在 Line 官方帳號中設置成黑名單,這樣就無法繼續使用吃吃記帳的服務了。

可是進行測試後,我發現這個方法並不能真正終止服務,無論是將對方「刪除」還是「放入黑名單」,使用者依然能夠在 Line 對話中呼叫 Bot,繼續使用服務並消耗我的 credits

問題的分析

為了釐清原因,我更深入了解 Line 官方帳號與 Coze 的設定。

我發現,Line 官方帳號對於「不想繼續交流」的好友,只能進行「管理員方面」的限制,例如將其放入黑名單。不過,黑名單中的使用者仍然可以傳訊息到帳號,只是訊息會被列入「垃圾訊息」,在一般管理介面上看不到。
如果想要完全終止對話,只能由使用者端單方面對官方帳號進行封鎖。

由於 Coze 的 Webhook 綁定了整個 Line 官方帳號,並不能針對特定使用者解除連結,因此無法對黑名單中的使用者停止服務

這樣的設計讓我了解到,平台的設定讓我很難有效地管理使用者的存取權限,並且存在更大的潛在風險。例如當有人惡意大量發送訊息,導致 Credits 被快速消耗時,我卻無法阻止、封鎖對方。

可能的解決方案與權衡

為了避免這個問題對吃吃記帳的未來造成負面影響,我想出了幾個潛在的解決方案,並對其進行了分析:

1. 為每個付費使用者單獨建立一個 Line 官方帳號 & Coze Bot

  • 優點:每個用戶都有專屬的帳號,這樣可以輕鬆管理權限,隨時中止或調整提供的服務內容,就不會出現「被動消耗 credits」的問題。
  • 缺點:Line 對於官方帳號的數量有嚴格的限制,每個人最多只能申請 100 個官方帳號。這樣一來,如果使用者成長到一定規模,管理和帳號申請將變得不可行。除此之外,每個帳號的管理成本也會急劇上升,會需要大量的手動操作

2. 使用不同的官方帳號來運行功能

  • 說明:舉例來說,測試過程只使用「A 官方帳號」,而正式服務則使用「B 官方帳號」。同時,限制 A 帳號每天能使用的免費訊息數量,這樣即使有使用者惡意消耗,也不會造成太大的損失
  • 缺點:如果某個測試者惡意濫用測試帳號的訊息上限,會導致其他人無法進行正常測試。另一個風險是,這種方式只能阻止測試者濫用,卻無法有效管理『付費到期』的使用者,讓他們停止繼續使用服務

暫定的解決方案:新增身份檢驗流程

經過研究後,我了解到 Line 平台方面無法針對這個問題進行調整,這也正是我先前在風險管理篇中提到的,依賴外部平台的隱憂之一。
為了彌補這個缺陷,我發現可以從 Coze 端進行阻擋功能的設計。不過,由於這部分尚未實踐,因此先分享我的想法:

1. 為每位使用者建立編號

我打算在 Bot 中新增一個 workflow,當每個使用者新加入 Line 帳號,並發送第一條訊息時,解析他們的 webhook 資訊,從中取得用戶的 Line User ID,並將其存入資料庫中。這部分的實作需要一定的程式能力,我計畫讓 Coze Assistant 幫忙撰寫這段程式碼,但還需測試來確認程式的正確性。

另一個比較簡單的方法是讓使用者自己設定一個帳號名稱,不過,要怎麼確定帳號是唯一、不重複的,又是另一個困難點。

2. 管理使用者的權限

有了每個使用者的獨立 User ID,我就可以進行詳細的權限管理了。這包括:設定試用期與訂閱期的起始與終止時間、管理訂閱狀態(有效/無效)、以及黑名單管理等等,都可以在資料庫中管理。

3. 驗證使用者的權限

接下來,每次 Bot 與使用者互動時,都會根據該使用者的 ID,查詢資料庫中的訂閱狀態
如果使用者的訂閱已過期或狀態為黑名單,則 Bot 會回傳預設的提示訊息(例如:「您的服務已到期,請聯繫管理者以繼續使用服務」),而不執行後續的流程。

我有和 Coze Assistant 確認過,查詢狀態沒有問題,只要不執行與 LLM 相關的操作,例如計算熱量和提供飲食建議,就不會消耗 Credits。

未來的發展與挑戰

目前這個身份檢驗機制只是我暫時想到的解決方案。從長期發展的角度來看,我需要更深入地研究平台的功能,找出更完善的方式來完全解決這個問題。比如,深入學習 Line Bot 的相關知識(他們已經有一套成熟的解決方案,但需要一定的程式基礎),或是在 Coze 上開發相關 Plugins,以提升對使用者管理的靈活性。

雖然這個過程有些棘手,但是我很慶幸能提前發現這個問題,並在解決的過程中,學習到更多關於 Line 和 Coze 的相關知識。同時,這次經驗也幫助我理解如何在技術與時間受限的情況下,靈活運用現有資源,快速找出可行的解決方案,並進行妥善的評估

我想,這正是一位專案與產品經理在面對挑戰時,需要具備的判斷力與執行能力。


上一篇
22. 吃吃記帳 - 產品說明頁面
下一篇
24. 吃吃記帳 - 使用者測試結果
系列文
用 No-code AI 工具打造產品「吃吃記帳」- 我的 PM 轉職 Side Project30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言